約 4,310,167 件
https://w.atwiki.jp/nginx/pages/25.html
長年nginxでサーバーを運用してきました。 何度もサーバーが落ちたのを経験したので、まとめておきます。 何度もサーバー障害は起きたのですが、nginxが原因になったことは一度もありません。 問題となったのは 1. fastcgi 2. メモリー不足 3. APC 4. データベース の4つです。 1.fastcgi これがよくエラーになりました。 fastcgiというのはnginxを仲介してphpプログラムを動作させるラッパーです。 fastcgiのプロセスが少ないとタイムアウトのエラーになります。 /usr/bin/php5-fastcgiの内容 /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -C 2 -f /usr/bin/php5-cgi 上の2というのがプロセス数でこの値を増やします。 2. メモリー不足 前にも書きましたが、メモリーを積む。プログラムのサイズを小さくすることで対応します。 3. APC APC というのはPHPのキャッシュプログラムのことです。 APCを導入すると、PHPのレスポンスが早くなります。 php.iniの apc.shm_size=256 256のこの値を大きくします。この場合は256Mバイトという意味です。 4.データベース データベースがボトルネックになっていることがあります。 まとめ サーバー障害が起きた場合、nginx以外をまず疑うことです。 nginxの周りを調べていくと、復旧のめどが立つと思います。 Linuxでは個々のプログラムを大体把握していても、全体となると難しくなります。 実メモリに加えて、スワップがあり、どのようにプロセスにメモリが割り当てられているか、 いつ障害が起きたのか、httpだけとっても複雑な処理があり、障害を特定するのが困難になります。 一つ一つ抑えていくということにはなると思っています。 サーバーが遅くなった場合は、単純にプロセス数を増やしていけばいいのです。 ところがそれをやると、今度はメモリー不足に悩まされます。 メモリー不足を解消するとまた元の問題が発生する。 豊富なメモリーがあれば解決するのですが、レンタルサーバーだとそういうわけにもいかないというのが現状です。 それで、サーバーの設定を恐る恐るイジッて落ち着いてくれるのを待つ、ということを繰り返しています。笑
https://w.atwiki.jp/nginx/pages/19.html
nginxでも404や502、403などのエラーページを表示することができます。 /etc/nginx/sites-available/domain1.com のserverのの項目の中で error_page 404 /404.html; nginxを再起動して下さい。 こうすると404エラーの場合、404.htmlが表示されます。 簡単ですね。 公式ページにも詳しい記述があります。 nginx error_page お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/20.html
nginxサーバーでアクセス解析をしよう。 nginxでもアクセス解析のWebalizerが使えます。 Webalizerはwstatsよりもインストールが非常に簡単です。 http //www.jitaku-server.net/apache_webalizer.html ここのページを参考にしました。 http //blog.bluegold.me/tag/nginx/ nginxのログフォーマットはここのページを参考にしました。 Webalizerのインストール apt-get update apt-get install webalizer webalizerで実行してみてください。 # webalizer webalizerはデフォルトでApatchのログを読みに行くので、エラーになります。 webalizerがnginxのログを読めるようにフォーマットを設定します。 /etc/nginx/sites-available/domain1.com に以下のlog_formatを指定してください。 webalizerで問題なく、読み込めるようになります。 log_format main $remote_addr - $remote_user [$time_local] "$request" "$status" $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio" ; お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/29.html
mysqlとphpmyadminのインストール ubuntsの環境でnginxと組み合わせてmysqlサーバーをインストールします。 超簡単です。 私は1日程ハマリましたが。w どなたでもできるのでトライしてみましょう。 既にhttpサーバーnginxのインストールは終わっているものとします。 mysql-serverとmysql-clientをインストール apt-get install mysql-server mysql-client libmysqlclient15-dev mysqlサーバーのインストールが完了します。 nginxを再起動して、phpinfo();を実行してみてください。 mysqlとmysqliの項目が増えているはずです。 これだけでもいいのですが、データベースやテーブルの作成にSQLコマンドを打ち込まなければいけません。 面倒なのでphpmyadminをインストールします。 phpmyadminを使うことで、ブラウザ上でデータベースやテーブルの作成や管理がグラフィカルにできるようになります。 phpmyadminのインストール apt-get install phpmyadmin /usr/share/phpmyadminディレクトリ以下にphpmyadminがインストールされます。 レンタルサーバーでdomain1.comを運用しているとします。http //www.domain1.com/で説明します。 ここでhttp //phpmyadmin.domain1.com/でデータベースにアクセスできるようにします。 /etc/nginx/sites-available/domain1.com のファイルに以下の内容を追加してください。 server{ listen 80; server_name phpmyadmin.domain1.com; access_log /var/log/phpmyadmin.access_log; error_log /var/log/phpmyadmin.error_log; location / { root /usr/share/phpmyadmin; index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } mysqlの実行 /etc/init.d/mysql start mysqlサーバーが起動し、/var/run/mysqld/mysqld.sock, /var/run/mysqld/mysqld.pid の2ファイルが自動作成されます。 後はレンタルサーバーのDNS Managerの(A/AAAA Records)にphpmyadminをIPアドレスと共に追加してください。 反映されるのに少し時間がかかります。 レンタルサーバーにドメインを登録するときに、wwwやmail, ftpなど設定したと思います。 これを追加することでhttp //phpmyadmin.domain1.com/ にアクセスできるようになります。 私はこれをし忘れて1日嵌ってしまいました。 これで完了です。http //phpmyadmin.domain1.com/ にアクセスしてみてください。 お疲れ様でした。
https://w.atwiki.jp/m_shige1979/pages/1586.html
nginx+php5.5+php-fpm 概要 nginx+php5.5+php-fpmの環境設定手順 環境 CentOS6.x 64bit 手順 # nginxをインストール wget http //nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm vim /etc/yum.repos.d/nginx.repo ---- [nginx] name=nginx repo baseurl=http //nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 ---- # インストール yum install -y nginx # 基本設定ファイル編集 vim /etc/nginx/nginx.conf ---- user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" ; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip設定; gzip on; gzip_types text/plain text/xml text/css text/javascript image/x-icon application/xml application/rss+xml application/json application/x-javascript; gzip_disable "MSIE [1-6]\."; gzip_disable "Mozilla/4"; # トークン他 server_tokens off; ignore_invalid_headers on; # 設定ファイル読み込み include /etc/nginx/conf.d/*.conf; } ---- # 自動起動、再起動 service nginx start chkconfig nginx on # phpenvをインストール cd curl https //raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | sh echo export PATH="$HOME/.phpenv/bin $PATH" ~/.bash_profile echo eval "$(phpenv init -)" ~/.bash_profile source ~/.bash_profile which phpenv mkdir -p ~/.phpenv/plugins cd ~/.phpenv/plugins git clone git //github.com/CHH/php-build.git chmod 755 php-build/bin/rbenv-install phpenv install usage phpenv install VERSION Available versions 5.2.17 5.3.10 5.3.11 いろいろ 5.5.5 5.5snapshot master yum --enablerepo=epel install re2c libmcrypt libmcrypt-devel yum install libxml2-devel bison bison-devel openssl-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel readline-devel libtidy-devel libxslt-devel httpd-devel enchant-devel libXpm libXpm-devel freetype-devel t1lib t1lib-devel gmp-devel libc-client-devel libicu-devel oniguruma-devel net-snmp net-snmp-devel bzip2-devel vim /root/.phpenv/plugins/php-build/share/php-build/definitions/5.5.5 ---- configure_option "--with-apxs2=/usr/sbin/apxs --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-fileinfo --enable-hash --enable-json --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-bcmath --with-bz2 --enable-ctype --with-iconv --enable-ftp --with-gettext --enable-mbstring --with-onig=/usr --with-pcre-regex --with-mysql=mysqlnd --with-mysql-sock=/tmp/mysql.sock --enable-phar --enable-shmop --enable-sockets --enable-simplexml --enable-dom --with-libxml-dir=/usr --enable-tokenizer --with-zlib --with-kerberos=/usr --with-openssl=/usr --enable-soap --enable-zip --with-mhash=yes --without-mm --with-enchant=/usr --with-zlib-dir=/usr --with-gd --enable-gd-native-ttf --with-gmp=/usr --with-jpeg-dir=/usr --with-xpm-dir=/usr/X11R6 --with-png-dir=/usr --with-freetype-dir=/usr --with-imap=/usr --with-imap-ssl --enable-intl --with-t1lib=/usr --with-mcrypt=/usr --with-snmp=/usr" install_package "http //www.php.net/distributions/php-5.5.5.tar.bz2" install_pyrus install_xdebug "2.2.3" enable_builtin_opcache ---- # install phpenv install 5.5.5 # モジュールをコピー cp /etc/httpd/modules/libphp5.so /root/.phpenv/versions/5.5.5/libphp5.so phpenv rehash phpenv global 5.5.5 php -v # php-fpm mkdir /var/log/php-fpm chown -R nobody nobody /var/log/php-fpm cp -f /tmp/php-build/source/5.5.5/sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf # サービス用起動スクリプトをコピー cp -f /tmp/php-build/source/5.5.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod 755 /etc/init.d/php-fpm chkconfig php-fpm on # /etc/init.d/php-fpmを編集してconfファイルの場所を変更する ---- # php_fpm_CONF=${prefix}/etc/php-fpm.conf ↓ php_fpm_CONF=/usr/local/etc/php-fpm.conf ---- # php-fpm.confを編集 vim /usr/local/etc/php-fpm.conf ---- [global] pid = run/php-fpm.pid [www] user = nginx group = nginx listen = 127.0.0.1 9000 listen.owner = nginx listen.group = nginx listen.mode = 0666 pm = dynamic pm.max_children = 8 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 500 ---- # 起動 service php-fpm start chkconfig php-fpm on # ログとドキュメントのディレクトリを作成 mkdir -p /var/log/nginx/dev1.example.com mkdir -p /var/www/html/dev1.example.com/public # nginxファイル作成 vim /etc/nginx/conf.d/dev1.example.com.conf ---- server { # ポート、サーバネーム listen 80; server_name dev1.example.com; # アクセスログ、エラーログ access_log /var/log/nginx/dev1.example.com/access.log main; error_log /var/log/nginx/dev1.example.com/error.log; # ドキュメントルート root /var/www/html/dev1.example.com/public; # indexファイル index index.php index.html index.htm; # phpの処理 location ~ \.php$ { fastcgi_pass 127.0.0.1 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # アクセスを制限する location ~ (\.htaccess|\.git|\.svn) { deny all; } # 文字コード charset utf-8; } ---- # 再起動 service nginx restart service php-fpm restart # 簡単なファイルを配置して確認 echo " ?php echo test ; phpinfo();" /var/www/html/dev1.example.com/public/index.php
https://w.atwiki.jp/minoru-tw/pages/11.html
Top Public Public/Top Public/Menu Public/Profile Public/forClients Public/forClients/Information Public/forClients/Contact Public/forClients/FAQ
https://w.atwiki.jp/m_shige1979/pages/1519.html
nginx 概要 リバースプロキシなどの設定を行うサーバ URL http //nginx.org/ 設定 インストール 設定例 nginx+php5.5+php-fpm
https://w.atwiki.jp/cocet/pages/20.html
20 public 【形】公共の【名】publicity(公共性) 「パブリック」は日本語としても使う。反意語はprivate(私的な)。
https://w.atwiki.jp/sevenlives/pages/2561.html
■ モジュール(nginx)?
https://w.atwiki.jp/aias-jsdoctoolkit/pages/42.html
トップページ ドックコメントの書き方 タグリファレンス @public @publicタグは、内部変数がpublicなメンバとしてドキュメント化されるようにします。 http //code.google.com/p/jsdoc-toolkit/wiki/TagPublic 構文 @public 例 /** * @constructor */ function Foo() { /** @public */ function inner() { } } 上の例では、 inner 関数は Foo のpublicなメンバとして(デフォルトではインスタンスメンバとして)表示されます。 inner 関数を静的なメンバとするには、@staticタグを使用します。 関連項目 @privateタグ @staticタグ